2020.7.9 更新,突然發現自己在這邊的文章有破圖,還好當時在自己部落格有備份
若有興趣看正常文章的朋友,可以到我的部落格:SQL Server Management Studio SQL 格式化與排版
最近三個月因為工作需求,重新開始撰寫 Stored procedure,面對這個只有曾經維護過但沒有正式學習的工作,總是會有些忐忑不安。幸虧周遭同事相當有經驗,給我蠻多指點。這一篇文章主要是撰寫 SQL Scripts 或 stored procedure 過程中,遇到格式與版面跑位的問題,也因為程式碼皆需要 code review,跑版問題常常造成閱讀上的困擾。這一篇將簡單介紹幾個方法與工具,協助我們撰寫程式過程能輕鬆的排版。
定位點與空白 (Tab and Space)
定位點與空白若沒有一致,當 Scripts 放在不同的地方會導致格式與排版不一致,所以可能在自己電腦上的SSMS撰寫時格式整齊一致,但上傳Code Review的平台,或者團隊成員透過不同的IDE開啟,就會有跑版的情況產生。
首先我們在 SSMS 先將定位點與空白顯示出來:
編輯 → 進階 → 檢視空白區
你會發現撰寫區塊出現空白標示,這樣可以明確知道目前格式是定位點還是空白,如此以來比較好調整
定位點調整
工具 → 選項 → Transact-SQL → 定位點
修改定位點大小與縮排大小一致,並且選擇插入空白,如此一來你的縮排就不會出現定位點,而皆由空格縮排
換行之後輸入文字,會發現定位點變成空白
經過前面的調整,開始撰寫 scripts 的時候,就不會因為定位點與空白而導致排版跑位。那先前的程式碼怎麼辦呢?只需要將選取程式碼 → 編輯 → 進階 → 選取範圍定位鍵轉成空白鍵,就完成轉換。
SQL 格式化的套件蠻多的,這邊簡單簡單介紹 ApexSQL Refactor
Step 1. 前往官方下載網站 https://www.apexsql.com/Download.aspx,下載ApexSQL Refactor
Step 2. 點選開啟,並且依照步驟進行安裝
Step 3. 自動選擇目前電腦上有的 SSMS 與 VS 版本
Step 4. 完成安裝
Step 5. 開啟SSMS 輸入一段語法,選取它
Step 6. ApexSQL → ApexSQL Refactor → Format SQL
Step 7. 完成